+2007-12-21 Richard Hult <richard@imendio.com>
+
+ * gdk/quartz/gdkwindow-quartz.c: (_gdk_windowing_window_destroy):
+ Plug leak of destroyed subviews, fixes bug #504753.
+
2007-12-20 Johan Dahlin <johan@gnome.org>
* tests/Makefile.am (TEST_PROGS):
GdkWindowObject *private;
GdkWindowImplQuartz *impl;
GdkWindowObject *parent;
+ GdkWindow *mouse_window;
private = GDK_WINDOW_OBJECT (window);
impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
if (window == _gdk_quartz_keyboard_grab_window)
gdk_keyboard_ungrab (0);
- if (!recursing && !foreign_destroy)
- {
- GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl);
- GdkWindow *mouse_window;
+ _gdk_quartz_drawable_finish (GDK_DRAWABLE (impl));
- mouse_window = _gdk_quartz_events_get_mouse_window (FALSE);
- if (window == mouse_window ||
- _gdk_quartz_window_is_ancestor (window, mouse_window))
- _gdk_quartz_events_update_mouse_window (_gdk_root);
+ mouse_window = _gdk_quartz_events_get_mouse_window (FALSE);
+ if (window == mouse_window ||
+ _gdk_quartz_window_is_ancestor (window, mouse_window))
+ _gdk_quartz_events_update_mouse_window (_gdk_root);
+ if (!recursing && !foreign_destroy)
+ {
GDK_QUARTZ_ALLOC_POOL;
- _gdk_quartz_drawable_finish (GDK_DRAWABLE (impl));
-
if (impl->toplevel)
[impl->toplevel close];
else if (impl->view)
- [impl->view release];
+ [impl->view removeFromSuperview];
GDK_QUARTZ_RELEASE_POOL;
}
void
gdk_window_destroy_notify (GdkWindow *window)
{
- /* FIXME: Implement. We should call this from -[GdkQuartzWindow dealloc] or
- * -[GdkQuartzView dealloc], although I suspect that currently they leak
- * anyway. */
}
void